大家好,今天要介紹的是偏向資訊方面的東西,比較沒有要寫code的部分。
https,全名HyperText Transfer Protocol Secure,一種用於在網際網路上安全傳輸數據的協定。它是基於HTTP的擴展,添加了加密和安全性功能,以保護數據在傳輸過程中不被未經授權的人或機構讀取或修改,其加密方式通常是透過TLS或SSL,來進行非對稱公開金鑰基礎結構來保護。
https讓網站不會讓隨便一個想看就看的人就能看到的方式傳輸資料,資訊會先被分解成封包,很多免費軟體可以輕易地查看封包,這會使公用網路的封包容易被攔截。因此使用https的時候,流量會經過加密,即使嗅到封包或以其他方式擷取封包,也只會呈現毫無意義的字元。舉個例子,以下是加密前的資料"This is a string of text that is completely readable",加密後會變成"ITM0IRyiEhVpa6VnKyExMiEgNveroyWBPlgGyfkflYjDaaFf/Kn3bo3OfghBPDWo6AfSHlNtL8N7ITEwIXc1gU5X73xMsJormzzXlwOyrCs+9XCPk63Y+z0="。
這功能再需要高安全性的方面上極為重要,想想看你的身分資料、銀行卡密碼、郵局帳戶密碼等等,都會被其他人知道。這對於電子商務網站、銀行網站和任何需要安全傳輸數據的應用程序都至關重要。
上面有提到非對稱式加密,這邊我稍微小提一下其功能。有一把鑰匙分為公/私鑰,A有一把,B也有一把,所以這邊總共兩把。公私鑰都可以做加解密的動作,AB都把自己的公鑰給對方(公開),這樣A想把資料給B的時候就用B的公鑰進行加密,B拿到加密後的資料再用自己的私鑰進行解密,反之亦然。
這看似很好,但有個問題是不知道會是誰傳給B的,可能是A用B的公鑰加密也可能是C。這邊就要提到數位簽章,其功用就是用來辨別,原理也很簡單,只需要在A傳送資料前,用他自己的私鑰進行加密即可,這樣一來B只需要嘗試看看是誰的公鑰才能解開這個訊息,就知道是誰傳送的了。
資料來源: https://zh.wikipedia.org/wiki/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%AE%89%E5%85%A8%E5%8D%8F%E8%AE%AE
https://www.cloudflare.com/zh-tw/learning/ssl/what-is-https/
https://blog.techbridge.cc/2017/04/16/simple-cryptography/